#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

struct ListNode
{
	int val;
	struct ListNode* next;
};

struct ListNode* reverseList(struct ListNode* head);
struct ListNode* removeElements(struct ListNode* head, int val);
struct ListNode* middleNode(struct ListNode* head);
struct ListNode* FindKthToTail(struct ListNode* plistHead, int k);
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2);

//typedef struct ListNode
//{
//	int data;
//	struct ListNode* next;
//}SLTNode;